OpenGraphiti

OpenDNS Data Visualization Framework


Project maintained by Thibault Reuille Powered by OpenDNS

Description

OpenGraphiti is a free and open source 3D data visualization engine for data scientists to visualize semantic networks and to work with them. It offers an easy-to-use API with several associated libraries to create custom-made datasets. It leverages the power of GPUs to process and explore the data and sits on a homemade 3D engine.

Requirements

Installation

First, you will need to clone the repository. The OpenDNS data visualization framework references a couple of git submodules. You need to use the --recursive option to make sure they all get downloaded properly.

$ git clone https://github.com/opendns/dataviz.git --recursive

Second, you have to install some required libraries if you don't already have them. In case the most recent versions of those libraries aren't compatible with the current version of OpenGraphiti, we have included the ones used for our developement in the repository. They can be found in the graphiti/Lib folder.

$ pip install networkx
$ pip install pygeoip

Now let's compile the OpenGraphiti engine :

$ cd dataviz/graphiti
$ make

You should now see a new binary named graphiti inside the your current folder.

Alternative : Development version

Alternatively, you can compile the development version of OpenGraphiti to stay up-to-date with the most recent changes.

$ mkdir dataviz-dev
$ cd dataviz-dev
$ git clone https://github.com/ThibaultReuille/raindance.git
$ git clone https://github.com/ThibaultReuille/graphiti.git
$ cd graphiti
$ cmake .
$ make

You should see a new binary named graphiti in the current folder. If the compilation fails, it is very likely that you are missing some libraries (cmake will check the dependencies for you). Use your favorite package manager to install them. Here is the list:

OpenGL
OpenCL
GLFW3
GLEW
Python Libs

Running

OpenGraphiti comes with a couple of script packages. They are aimed to give our data scientists a couple of examples on how to use the engine and its API. The main demo package implements a variety of scripts that can be used to visualize graph datasets and manipulate them in 3D. The curious users are invited to add custom-made packages with their own specific scripts.

To list the available packages :

./graphiti

To run the demo package :

./graphiti demo [dataset.json]

Datasets

To create your custom datasets, you will need to use the SemanticNet library located at this address:

We have provided several example scripts and use cases and these can be found in the semanticnet/examples folder.

Support or Contact

For any questions, problems or feature requests you can subscribe to our Google Groups and discuss with the community :

You can also go on github and open an issue on the corresponding repository. We will address all issues as quickly as possible.

Authors and Contributors

License

Copyright (c) 2014-2015, OpenDNS, Inc.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.